package com.wcity.manage.service.property;

import com.wcity.manage.dao.dal.model.PageModel;
import com.wcity.manage.dao.model.Block;
import com.wcity.manage.dao.model.PropertyPay;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.List;
import java.util.Map;

/**
 * 业主缴费数据管理模块
 * Created by zm on 2016/12/10.
 */
public interface PropertyPayService {
    /**
     * 分页查询用户
     *
     * @return
     */
    List<PropertyPay> getUserListPage(PageModel<PropertyPay> page);

    /**
     * 获取小区的名字
     * @return
     */
    List<Block> getblockName(int id);

    /**
     * 添加用户缴费信息
     * @param pay
     * @return
     */
    int addPaylist(PropertyPay pay);

    /**
     * 删除用户缴费信息
     * @param id
     * @return
     */
    int delectPay(String id);

    /**
     * 根据id获取缴费信息
     * @param id
     * @return
     */
    PropertyPay getPayInfo(String id);

    /**
     * 更新缴费信息
     * @param pay
     * @param pay
     * @return
     */
    int updateUser(PropertyPay pay);

    /**
     * 判断是否存在该缴费账户
     * @param payUser
     * @param payUserTel
     * @param
     * @return
     */
    int selectCount(String payUser, String payUserTel );

    /**
     * 获取一年的账单
     * @param pageModel
     * @return
     */
    List<PropertyPay> getIPayList(PageModel pageModel);

    /**
     * 获取一年的费用
     * @param payUser
     * @param payUserTel
     * @param year
     * @return
     */
    PropertyPay getPayFee(String payUser , String payUserTel ,String year);

    /**
     * 获取物业费账单详情
     * @param payId
     * @return
     */
    PropertyPay getIPayInfo(String payId);

    /**
     * 查询缴费数据的所有数据
     * @return
     */
    List<PropertyPay> selectPayModel(PropertyPay propertyPay);

    /**
     * 批量导入
     * @return
     */
    String excelToDb(File target , int userId , String workNo);

    /**
     * 获取缴费数据列表
     * @param pageModel
     * @param payUser
     * @param payUserTel
     * @param type
     * @return
     */
    Map<String,Object> getYeanList(PageModel pageModel, String payUser, String payUserTel, String type);
}
